A B-tree is a type of a search tree that supports insertion, lookup, deletion, and other types of operations such that data access operations with respect to a storage infrastructure are made more efficient. A B-tree is made up of a tree of nodes, including a root node, intermediate or internal nodes, and leaf nodes. Values associated with keys are stored at all tree nodes in a conventional B-tree, and only at leaf nodes in a B+-tree, which is a special type of B-tree The internal nodes (non-leaf nodes) of any B-tree contain pointers to lower-level nodes in addition to keys, which for internal nodes are called separator keys. A search for a particular key performed with a B-tree starts at the root node, and the B-tree is traversed from top to bottom. Once the leaf node with the particular key is found, then the value associated with the key can be retrieved. B-trees can be used in distributed storage and search systems.